package com.jyr.ohs.mapper;

import com.jyr.ohs.entity.Course;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author ZhongJing </p>
 * @Description 课程Mapper </p>
 * @date 2021/4/20 2:45 下午 </p>
 */
@Mapper
public interface CourseMapper {

    /**
     * 查询所有课程信息，带模糊查询（根据课程名）
     * @param name 课程名
     * @return 返回课程组成的集合
     */
    List<Course> getAllCourseLikeName(String name);

    /**
     * 根据id查询对应的课程信息
     * @param id 课程id
     * @return 如果存在返回课程信息对象，如果不存在返回null
     */
    Course getOneById(Integer id);

    /**
     * 添加课程信息
     * @param course 课程具体信息
     * @return true成功，false失败
     */
    boolean add(Course course);

    /**
     * 修改课程信息
     * @param course 课程信息
     * @return true成功，false失败
     */
    boolean update(Course course);

    /**
     * 根据id删除课程信息
     * @param id 要删除课程的id
     * @return true成功，false失败
     */
    boolean deleteById(Integer id);

    /**
     * 查询对应id的教师所代课程
     * @param tid 教师id
     * @return 返回该id教师代的所有课程
     */
    List<Course> getCourseListByTid(Integer tid);

    /**
     * 查询该课程共有多少名学生
     * @param id 课程id
     * @return 返回学生的数量
     */
    Integer countById(Integer id);

    /**
     * 根据学生id查询该学生所有的课程信息
     * @param sid 要查询的学生id
     * @return 返回一个课程的集合
     */
    List<Course> getCourseListBySid(String sid);

}
